import { http } from '@/utils/http';

/**
 * 后端API连接测试工具
 * 用于测试与后端API的连接是否正常工作
 */
export class BackendTest {
  /**
   * 测试API连接
   * 向后端发送简单的GET请求，验证连接是否正常
   */
  static async testConnection() {
    try {
      // 可以替换为实际的健康检查接口
      const response = await http.get('/health');
      console.log('后端连接测试成功:', response);
      return {
        success: true,
        data: response,
        message: '后端连接测试成功'
      };
    } catch (error) {
      console.error('后端连接测试失败:', error);
      return {
        success: false,
        error,
        message: '后端连接测试失败，请检查API服务是否正常运行'
      };
    }
  }

  /**
   * 测试API授权
   * 测试带有Token的请求是否能正常工作
   */
  static async testAuthorization(token: string) {
    try {
      // 存储token
      localStorage.setItem('token', token);
      
      // 发送需要授权的请求
      const response = await http.get('/auth-test');
      console.log('授权测试成功:', response);
      return {
        success: true,
        data: response,
        message: '授权测试成功'
      };
    } catch (error) {
      console.error('授权测试失败:', error);
      return {
        success: false,
        error,
        message: '授权测试失败，请检查Token是否有效'
      };
    }
  }

  /**
   * 测试POST请求
   * 测试向后端发送POST请求是否能正常工作
   */
  static async testPostRequest(data: any) {
    try {
      const response = await http.post('/test-post', data);
      console.log('POST请求测试成功:', response);
      return {
        success: true,
        data: response,
        message: 'POST请求测试成功'
      };
    } catch (error) {
      console.error('POST请求测试失败:', error);
      return {
        success: false,
        error,
        message: 'POST请求测试失败'
      };
    }
  }

  /**
   * 测试所有主要HTTP方法
   * 测试GET、POST、PUT、DELETE请求是否都能正常工作
   */
  static async testAllMethods() {
    try {
      const results = await Promise.all([
        http.get('/test-get'),
        http.post('/test-post', { data: 'test' }),
        http.put('/test-put', { data: 'test' }),
        http.delete('/test-delete')
      ]);
      
      console.log('所有HTTP方法测试成功:', results);
      return {
        success: true,
        data: results,
        message: '所有HTTP方法测试成功'
      };
    } catch (error) {
      console.error('HTTP方法测试失败:', error);
      return {
        success: false,
        error,
        message: 'HTTP方法测试失败，请检查API服务'
      };
    }
  }
}

/**
 * 使用示例:
 * 
 * // 测试连接
 * BackendTest.testConnection().then(result => {
 *   if (result.success) {
 *     console.log('连接成功!');
 *   } else {
 *     console.error('连接失败:', result.message);
 *   }
 * });
 * 
 * // 测试授权
 * BackendTest.testAuthorization('your-token-here').then(result => {
 *   console.log(result);
 * });
 */ 